//
//  StudentMain.m
//  LearnOCbase
//
//  Created by China Dragon on 2023/1/8.
//

#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[]){
    @autoreleasepool {
        /*
         创建一个student对象
         1、调用一个静态方法 alloc 来分配内存
         alloc 方法返回一个id, 暂时当作是任何对象
         
         OC用指针接收对象
         
         
         alloc 和 init 都是属于 NSObject 类的方法，所以可以直接调用
         */
        
//        Student *stu = [Student alloc];
        
        // 2、初始化; 调用一个动态方法init进行初始化, 这里返回的对象才是真正可以使用的对象
//        stu = [stu init];
        
        //上面两步可以写成一步
        Student *stu2 = [[Student alloc]init];
//        [stu2 setAge:20];
//        int age = [stu2 age];
//        NSLog(@"返回的age = %i",age);
//        2023-01-08 18:37:27.277271+0800 LearnOCbase[2634:113565] 调用了setAge方法 age = 20
//        2023-01-08 18:37:27.277666+0800 LearnOCbase[2634:113565] 调用了getAge方法 age = 20
//        2023-01-08 18:37:27.277695+0800 LearnOCbase[2634:113565] 返回的age = 20
        
        [stu2 setAge:18 andNo:1];
        NSLog(@"age = %i andno is %i",[stu2 age],[stu2 no]);
        
//        2023-01-08 18:52:26.534554+0800 LearnOCbase[2801:124772] 调用了setAge andNo 方法 age = 18 , no = 1
//        2023-01-08 18:52:26.534929+0800 LearnOCbase[2801:124772] 调用了getAge方法 age = 18
//        2023-01-08 18:52:26.534959+0800 LearnOCbase[2801:124772] 调用了getno方法 no = 1
//        2023-01-08 18:52:26.534980+0800 LearnOCbase[2801:124772] age = 18 andno is 1
//        Program ended with exit code: 0
        
        //主动释放对象，oc中不支持垃圾回收
//        [stu2 release];
    }
    return 0;
}
